package com.cloudkinto.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 仓库表
 * </p>
 *
 * @author long
 * @since 2024-10-29
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_warehouse")
public class WarehouseDo extends Model<WarehouseDo> {

    private static final long serialVersionUID = 1L;

    /**
     * 仓库id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 隔离公司用的
     */
    @TableField(value = "tenant_id", fill = FieldFill.INSERT)
    private Long tenantId;

    /**
     * 仓库代码
     */
    @TableField("wh_code")
    private String whCode;

    /**
     * 仓库名称
     */
    @TableField("wh_name_cn")
    private String whNameCn;

    /**
     * 仓库类型 0自营仓 1代理仓
     */
    @TableField("warehouse_type")
    private Integer warehouseType;

    /**
     * 与UTC相差小时数
     */
    @TableField("time_utc")
    private String timeUtc;

    /**
     * 与UTC相差小时数
     */
    @TableField("time_utc_hourage")
    private Integer timeUtcHourage;

    /**
     * 时区
     */
    @TableField("time_zone")
    private String timeZone;

    /**
     * 结算币种
     */
    @TableField("currency_code")
    private String currencyCode;

    /**
     * 收件人
     */
    @TableField("contacter")
    private String contacter;

    /**
     * 公司名称
     */
    @TableField("company_name")
    private String companyName;

    /**
     * 城市
     */
    @TableField("city")
    private String city;

    /**
     * 省/州
     */
    @TableField("state")
    private String state;

    /**
     * 地址1
     */
    @TableField("address1")
    private String address1;

    /**
     * 地址2
     */
    @TableField("address2")
    private String address2;

    /**
     * 门牌号
     */
    @TableField("street_number")
    private String streetNumber;

    /**
     * 国家/地区二字代码
     */
    @TableField("country_code")
    private String countryCode;

    /**
     * 邮箱
     */
    @TableField("mail")
    private String mail;

    /**
     * 电话
     */
    @TableField("phone_no")
    private String phoneNo;

    /**
     * 邮编
     */
    @TableField("post_code")
    private String postCode;

    /**
     * 0启用 1停用
     */
    @TableField("status")
    private Integer status;

    /**
     * 0正常 1删除
     */
    @TableField(value = "delete_flag", fill = FieldFill.INSERT)
    @TableLogic
    private int deleteFlag;

    /**
     * 创建人
     */
    @TableField(value = "create_by_name", fill = FieldFill.INSERT)
    private String createByName;
    /**
     * 创建人
     */
    @TableField(value = "create_by", fill = FieldFill.INSERT)
    private Long createBy;

    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 修改人
     */
    @TableField(value = "update_by", fill = FieldFill.UPDATE)
    private Long updateBy;

    /**
     * 修改时间
     */
    @TableField(value = "update_time", fill = FieldFill.UPDATE)
    private Date updateTime;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;


    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
